﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;

namespace Invini.System.Structures
{
    [StructLayout(LayoutKind.Sequential)]
    public struct SP_DEVINFO_DATA
    {
        /// <summary>
        /// The size, in bytes, of the SP_DEVINFO_DATA structure.
        /// </summary>
        public uint cbSize;

        /// <summary>
        /// The GUID of the device's setup class.
        /// </summary>
        public Guid ClassGuid;

        /// <summary>
        /// An opaque handle to the device instance (also known as a handle 
        /// to the devnode). Some functions, such as SetupDiXxx functions, 
        /// take the whole SP_DEVINFO_DATA structure as input to identify a 
        /// device in a device information set. Other functions, such as 
        /// CM_Xxx functions like CM_Get_DevNode_Status, take this DevInst 
        /// handle as input.
        /// </summary>
        public uint DevInst;

        /// <summary>
        /// Reserved. For internal use only.
        /// </summary>
        public IntPtr Reserved;
    }
}
